home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 1998 November / IRIX 6.5.2 Base Documentation November 1998.img / usr / share / catman / u_man / cat1 / ld.z / ld
Text File  |  1998-10-30  |  62KB  |  1,255 lines

  1.  
  2.  
  3.  
  4. LLLLDDDD((((1111))))                                                                    LLLLDDDD((((1111))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      ld - link editor
  10.  
  11. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  12.      lllldddd [ _o_p_t_i_o_n ] ... _f_i_l_e ...
  13.  
  14. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  15.      _L_d, the link editor, links _E_l_f _o_b_j_e_c_t _f_i_l_e_s. The archive format lllldddd uses
  16.      is the one created by the archiver _a_r(1).
  17.  
  18.      _l_d is normally invoked by _c_c(1), although it can be run separately.  When
  19.      _l_d is used as part of a _c_c compilation, the _l_d _o_p_t_i_o_ns must be passed via
  20.      the ----WWWWllll mechanism.  See _c_c(1) for details of ----WWWWllll.
  21.  
  22.      The lllldddd command combines several object files into one, performs
  23.      relocation, resolves external symbols, builds tables and relocation
  24.      information for run-time linkage in case of shared linking, and supports
  25.      symbol table information for symbolic debugging.  In the simplest case,
  26.      the names of several object _f_i_l_e_s are given.  lllldddd combines them, producing
  27.      an object module that can be executed or used as input for a subsequent
  28.      lllldddd run.  (In the latter case, the ----rrrr option must be given to preserve the
  29.      relocation entries.)  The output of lllldddd is left in _a._o_u_t.  By default,
  30.      this file is a dynamic executable if no errors occurred during the link.
  31.  
  32.      Usually, lllldddd is invoked by the compiler driver as the final step in
  33.      compilation.  Only under special circumstances is it necessary to run it
  34.      separately.
  35.  
  36.      The sections within the argument object files are combined, some by
  37.      merging and others by concatenation. The order in which this is done may
  38.      be specified.  The entry point of the output is the first instruction in
  39.      the text segment (unless the ----eeee option is specified).
  40.  
  41.      If any argument is a library, it is searched exactly once at the point it
  42.      is encountered in the argument list.  There are two kinds of libraries,
  43.      archives and dynamic shared objects.  When linking with archives, only
  44.      those routines defining an unresolved external reference are loaded.
  45.      Shared objects are used only if the output is to be dynamic. In that
  46.      case, only the name is used for external resolution, no object is
  47.      included as part of the output object file.  Note, unresolved symbols are
  48.      not considered an error when linking ----sssshhhhaaaarrrreeeedddd.  The library (archive)
  49.      symbol table (see _a_r(1)) is a hash table and is searched to resolved
  50.      external references that can be satisfied by library members.  The
  51.      ordering of library members is NNNNOOOOTTTT important.
  52.  
  53.      Linking against a dynamic shared object will normally cause that object
  54.      to be loaded at runtime (see _r_l_d(1) and _d_s_o(5)) whenever the object being
  55.      created is loaded, thus resolving the symbols supplied by that object.
  56.      The loading of a dynamic shared object can be delayed using the
  57.      ----ddddeeeellllaaaayyyy____llllooooaaaadddd option.  In this case the object is not loaded until a symbol
  58.      supplied by the object is actually referenced.  Symbols from a delay
  59.      loaded object do not preempt symbols from other libraries; they are
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. LLLLDDDD((((1111))))                                                                    LLLLDDDD((((1111))))
  71.  
  72.  
  73.  
  74.      resolved as if the object was last on the link line.
  75.  
  76.      When searching for ucode libraries the default directories searched are
  77.      /_u_s_r/_l_i_b/, /_l_i_b/ and /_u_s_r/_l_o_c_a_l/_l_i_b/.  Note that, although archives will
  78.      be found in /_u_s_r/_l_o_c_a_l/_l_i_b/, shared objects should not be installed
  79.      there, as they will not be found by _r_l_d(1).  When searching for 64bit
  80.      libraries the default directories searched are /_u_s_r/_l_i_b_6_4/, /_l_i_b_6_4/ and
  81.      /_u_s_r/_l_o_c_a_l/_l_i_b_6_4/.  When searching for n32 libraries the default
  82.      directories searched are /_u_s_r/_l_i_b_3_2/, /_l_i_b_3_2/ and /_u_s_r/_l_o_c_a_l/_l_i_b_3_2/.
  83.  
  84. RRRReeeesssseeeerrrrvvvveeeedddd SSSSyyyymmmmbbbboooollllssss
  85.      The symbols `.bss', `.comment', `.data', `.fini', `.init', `.lit4',
  86.      `.lit8', `.rdata', `.sbss', `.sdata', `.text', `_BASE_ADDRESS',
  87.      `_DYNAMIC', `_DYNAMIC_LINK', `_DYNAMIC_LINKING', `_GOT_OFFSET',
  88.      `__dso_displacement', `__elf_header', `__fstart', `__istart',
  89.      `__lcldta_address', `__lcldta_size', `__program_header_table',
  90.      `__rld_obj_head', `__start', `__unwind', `_data_init_table', `_edata',
  91.      `_end', `_etext', `_fbss', `_fdata', `_ftext', `_gp', `_gp_disp',
  92.      `_lib_version', `_procedure_string_table', `_procedure_table',
  93.      `_procedure_table_size', `_rld_new_interface', `_rt_symbol_string_table',
  94.      `_rt_symbol_table', `_rt_symbol_table_size', and all symbols beginning
  95.      with the prefixes `__elf_vaddr' and `__elf_size' are reserved.  It is
  96.      erroneous to define these symbols.  In ANSI C the symbols `end', `edata',
  97.      and `etext' may be user defined. (see the description of ----ssssttttdddd below.)  If
  98.      they are not defined (but only referenced) they are assigned the same
  99.      values as `_end', `_edata', and `_etext' respectively.  More information
  100.      on these symbols is available in _e_n_d(3C).
  101.  
  102.  
  103. SSSSyyyymmmmbbbboooollll RRRReeeessssoooolllluuuuttttiiiioooonnnn //// IIIInnnnppppuuuutttt SSSSeeeeaaaarrrrcccchhhhppppaaaatttthhhh OOOOppppttttiiiioooonnnnssss
  104.      ----llll_x  Search a library lllliiiibbbb_x....{{{{ssssoooo,,,,_a}, where _x is a string.  A shared object
  105.           or an archive is searched when its name is encountered, so the
  106.           placement of a ----llll is significant.
  107.  
  108.  
  109.      ----LLLL  _d_i_r
  110.           Change the algorithm of searching for lllliiiibbbb_x....{{{{ssssoooo,,,,_a} or lllliiiibbbb_x....bbbb to look
  111.           in _d_i_r before looking in the default directories.  This option is
  112.           effective only if it precedes the ----llll options on the command line.
  113.           Repeating for emphasis: _d_i_r must be a directory.
  114.  
  115.  
  116.      ----LLLL_d_i_r
  117.           The same as ----LLLL  _d_i_r....
  118.  
  119.  
  120.      ----LLLL   Change the algorithm of searching for lllliiiibbbb_x....{{{{ssssoooo,,,,_a} or lllliiiibbbb_x....bbbb to nnnneeeevvvveeeerrrr
  121.           look in the default directories.  This is useful when the default
  122.           directories for libraries should not be searched and only the
  123.           directories specified by ----LLLL_d_i_r are to be searched.  This option may
  124.           be dropped from some future release in favor of the ----nnnnoooossssttttddddlllliiiibbbb
  125.           option.
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. LLLLDDDD((((1111))))                                                                    LLLLDDDD((((1111))))
  137.  
  138.  
  139.  
  140.      ----nnnnoooossssttttddddlllliiiibbbb
  141.           Change the algorithm of searching for lllliiiibbbb_x....aaaa or lllliiiibbbb_x....bbbb to nnnneeeevvvveeeerrrr look
  142.           in the default directories.  This is useful when the default
  143.           directories for libraries should not be searched and only the
  144.           directories specified by ----LLLL  ddddiiiirrrr are to be searched.
  145.  
  146.  
  147.      ----BBBB [_s_t_a_t_i_c|_d_y_n_a_m_i_c|_s_y_m_b_o_l_i_c]
  148.           In dynamic mode (the default), ld searches each directory specified
  149.           in the library search path for a file libx.so, and if not available
  150.           then libx.a. When -B _s_t_a_t_i_c is specified, ld selects only the files
  151.           ending in .a (except for libc).  If it is desired to link with
  152.           static libraries, but not all of the needed .a files are available:
  153.           cc prog.o -o prog -B static -lXm -lXt -B dynamic -lX11 -lgen
  154.  
  155.           When -B _s_y_m_b_o_l_i_c is specified, ld inserts the element DT_SYMBOLIC
  156.           into the .dynamic section of a shared object library and this alters
  157.           the dynamic linker's symbol resolution algorithm for references
  158.           within the library. Instead of starting a symbol search with the
  159.           executable file, the dynamic linker starts from the shared object
  160.           itself.  If the shared object fails to supply the referenced symbol,
  161.           the dynamic linker then searches the executable file and other
  162.           shared objects as usual.
  163.  
  164.  
  165.      ----uuuu symname
  166.           Enter _s_y_m_n_a_m_e as an undefined in the symbol table.  This is useful
  167.           for loading entirely from a library, since initially the symbol
  168.           table is empty and an unresolved reference is needed to force the
  169.           loading of the first routine.
  170.  
  171.  
  172.      ----ssssttttdddd Specifies that the linker should not define certain symbol names,
  173.           e.g.  `_e_n_d`, `_e_d_a_t_a`, _a_n_d `_e_t_e_x_t`.
  174.  
  175.  
  176.      ----cccccccckkkkrrrr
  177.           Specifies that the linker should set the value of the variable
  178.           `__l_i_b__v_e_r_s_i_o_n` _t_o _s_p_e_c_i_f_y _n_o_n-_a_n_s_i _s_e_m_a_n_t_i_c_s _t_o see eeeennnndddd((((3333))))....
  179.  
  180.  
  181.      ----ccccxxxxxxxx Specifies special handling of certain symbols needed for proper
  182.           linkage and execution of C++ programs.
  183.  
  184.  
  185.  
  186.  
  187.  
  188. IIIInnnnppppuuuutttt SSSSppppeeeecccciiiiffffiiiiccccaaaattttiiiioooonnnn OOOOppppttttiiiioooonnnnssss
  189.      ----ffffrrrroooommmm _o_p_t_i_o_n_l_i_s_t_f_i_l_e
  190.           This allows one to specify arguments to lllldddd in a file.  Read the file
  191.           _o_p_t_i_o_n_l_i_s_t_f_i_l_e as if it appeared on the command line in the same
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. LLLLDDDD((((1111))))                                                                    LLLLDDDD((((1111))))
  203.  
  204.  
  205.  
  206.           position as the ----ffffrrrroooommmm option.  Newlines in _o_p_t_i_o_n_l_i_s_t_f_i_l_e are
  207.           treated as if they were ordinary spaces.
  208.  
  209.  
  210.      ----oooobbbbjjjjeeeeccccttttlllliiiisssstttt _o_b_j_e_c_t_l_i_s_t_f_i_l_e
  211.           Read the file _o_b_j_e_c_t_l_i_s_t_f_i_l_e to obtain a list of files.  By putting
  212.           the list of files in _o_b_j_e_c_t_l_i_s_t_f_i_l_e instead of on the command line
  213.           one avoids exceeding the limit on the length of a command line.
  214.           This is primarily useful when linking very large programs with many
  215.           objects and long filenames.  The _o_b_j_e_c_t_l_i_s_t_f_i_l_e is  a list of file
  216.           or archive names, one file per line.  Blank lines are silently
  217.           ignored.  Leading white space is ignored.  A filename is considered
  218.           ended by the next whitespace character.  Characters after the
  219.           filename are ignored.  Any leading ``-'' in an _o_b_j_e_c_t_l_i_s_t_f_i_l_e line
  220.           is considered part of a filename: nothing in the file is taken as an
  221.           option.  Lines are in the file are limited to BUFSIZ*2 characters
  222.           (16K bytes) each.
  223.  
  224.  
  225.      ----aaaallllllll Link in all of the objects from all archives following this flag.
  226.           This option is commonly used in conjunction with ----sssshhhhaaaarrrreeeedddd option to
  227.           create a shared object out of an existing archive.
  228.  
  229.  
  230.      ----nnnnoooottttaaaallllllll
  231.           Turns off ----aaaallllllll.... This still allows objects to be pulled out of the
  232.           archive into a DSO if these objects resolve unresolved symbols in
  233.           the already included object, but these objects are included without
  234.           exporting their symbols by default.
  235.  
  236.  
  237.      ----eeeexxxxcccclllluuuuddddeeee _o_b_j_e_c_t
  238.           Used in conjunction with ----aaaallllllll and ----sssshhhhaaaarrrreeeedddd.... The object specified will
  239.           be excluded in making the shared object.
  240.  
  241.  
  242.      ----nnnnoooo____aaaarrrrcccchhhhiiiivvvveeee
  243.           Requires that ----llll references must resolve to shared objects.
  244.           Normally, if the shared object as specified by the ----llll is not found,
  245.           the linker attempts to find the corresponding archive to resolve
  246.           undefines. This option disallow using those archives. This is a
  247.           synonym of ----BBBBddddyyyynnnnaaaammmmiiiicccc....
  248.  
  249.  
  250.  
  251.  
  252. DDDDeeeebbbbuuuuggggggggiiiinnnngggg OOOOppppttttiiiioooonnnnssss
  253.      ----aaaaoooouuuuttttkkkkeeeeeeeepppp
  254.           By default, ld removes the output file if there are link errors.
  255.           But when this flag is set, the output file will be rename to aaaa....oooouuuutttt ....
  256.  
  257.  
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. LLLLDDDD((((1111))))                                                                    LLLLDDDD((((1111))))
  269.  
  270.  
  271.  
  272.      ----mmmm   Produce a map or listing of the input/output sections on the
  273.           standard output (UNIX system V-like map).
  274.  
  275.  
  276.      ----MMMM   Produce a primitive load map, listing the names of the files that
  277.           will be loaded (UNIX 4.3bsd-like map).
  278.  
  279.  
  280.      ----ggggppppiiiinnnnffffoooo
  281.           Produce a listing of short data section components (page pointers,
  282.           GOT pointers, small data, and small literals). This may be useful in
  283.           identifying modules with large gp relative sections. In cases where
  284.           ----mmmmuuuullllttttiiiiggggooootttt won't work, recompiling these modules with -G0 may allow a
  285.           successful link.
  286.  
  287.  
  288.      ----vvvv   Set verbose mode.  Print the name of each file as it is processed.
  289.  
  290.  
  291.      ----qqqquuuuiiiicccckkkkssssttttaaaarrrrtttt____iiiinnnnffffoooo
  292.           Prints extra information regarding the quickstart status of the
  293.           executable file created, including a full list of conflict symbols
  294.           and their objects of origin.
  295.  
  296.  
  297.      ----yyyy_s_y_m
  298.           Indicate each file in which _s_y_m appears, _s_y_m's type and whether the
  299.           file defines or references _s_y_m.  Many such options may be given to
  300.           trace many symbols.  Each ----yyyy_s_y_m applies to those files listed after
  301.           this option on the command line.
  302.  
  303.  
  304.      ----VVVV   Print a message giving information about the version of lllldddd being
  305.           used.
  306.  
  307.  
  308.      ----ffff _f_i_l_l
  309.           Set the fill pattern for ``holes'' within an output section.  The
  310.           argument _f_i_l_l is a four-byte hexadecimal constant.
  311.  
  312.  
  313.      ----sssshhhhoooowwww____uuuunnnnrrrreeeeffff
  314.           Defined but unreferenced symbols will be listed.  This flag is
  315.           useful for finding out "dead code" in a program.  Note that it is
  316.           normal behavior for many library routines to define symbols that
  317.           might not be referenced by all programs.  Also, in the case of weak
  318.           and strong symbol pair where two different symbols point to the same
  319.           virtual address, if only one of them is referenced, the other symbol
  320.           is still listed.  This does not necessarily mean the specified
  321.           function is never used.
  322.  
  323.  
  324.  
  325.  
  326.  
  327.                                                                         PPPPaaaaggggeeee 5555
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334. LLLLDDDD((((1111))))                                                                    LLLLDDDD((((1111))))
  335.  
  336.  
  337.  
  338. MMMMeeeessssssssaaaaggggeeee OOOOppppttttiiiioooonnnnssss
  339.      ----LLLLDDDD____MMMMSSSSGGGG::::[[[[mmmmssssggggttttyyyyppppeeee====nnnnuuuummmmlllliiiisssstttt]]]][[[[::::mmmmssssggggttttyyyyppppeeee====nnnnuuuummmmlllliiiisssstttt]]]]........
  340.           General message handling interface for ld that allows the user to
  341.           select the message type of the specified message numbers.  The
  342.           _n_u_m_l_i_s_t is a comma (',') or dash ('-') separated list of message
  343.           numbers.
  344.  
  345.           eeeerrrrrrrroooorrrr====_n_u_m_l_i_s_t
  346.                Treat each message on the _n_u_m_l_i_s_t as an error.
  347.  
  348.           wwwwaaaarrrrnnnniiiinnnngggg====_n_u_m_l_i_s_t
  349.                Treat each message on the _n_u_m_l_i_s_t as a warning.
  350.  
  351.           iiiinnnnffffoooo====_n_u_m_l_i_s_t
  352.                Treat each message on the _n_u_m_l_i_s_t as an info message.
  353.  
  354.           vvvveeeerrrrbbbboooosssseeee====_n_u_m_l_i_s_t
  355.                Treat each message on the _n_u_m_l_i_s_t as a verbose message.
  356.  
  357.           ooooffffffff====_n_u_m_l_i_s_t
  358.                Ignore each message on the _n_u_m_l_i_s_t.
  359.  
  360.           For example, ----LLLLDDDD____MMMMSSSSGGGG::::wwwwaaaarrrrnnnniiiinnnngggg====33333333 tells the linker to treat message
  361.           33, which by default is an error, as a warning.  Similarly,
  362.           ----LLLLDDDD____MMMMSSSSGGGG::::wwwwaaaarrrrnnnniiiinnnngggg====33333333::::ooooffffffff====44447777----66668888 tells the linker to treat message 33 as
  363.           a warning and to ignore all messages from 47 to 68 inclusive.
  364.  
  365.           Fatal errors can not be modified by ----LLLLDDDD____MMMMSSSSGGGG::::
  366.  
  367.  
  368.      ----UUUU   Undefined symbols are not considered an error when this is supplied.
  369.           As a result, one can create an executable with undefined symbols.
  370.           Referencing an undefined symbol during execution may cause a
  371.           segmentation fault and a core dump.
  372.  
  373.  
  374.      ----wwwwooooffffffff _n_u_m_l_i_s_t
  375.           This allows a user to specify a comma-separated list of numbers of
  376.           warnings which the linker is to suppress.  For example, ----wwwwooooffffffff
  377.           5555,,,,11117777,,,,22223333 turns off warnings numbered 5, 17 and 23.  If you are
  378.           linking using the cccccccc(_1) command, this flag should be passed to the
  379.           linker with, ----WWWWllll,,,,----wwwwooooffffffff,,,,5555 ----WWWWllll,,,,----wwwwooooffffffff,,,,11117777 ----WWWWllll,,,,----wwwwooooffffffff,,,,22223333....
  380.  
  381.  
  382.      ----wwww   This flag specifies that all warnings are to be suppressed.
  383.  
  384.  
  385.      ----iiiinnnnffffoooo
  386.           Enable the linker to print out messages of an informational nature
  387.           which might highlight unusual, but not illegal situations.  This is
  388.           on by default.
  389.  
  390.  
  391.  
  392.  
  393.                                                                         PPPPaaaaggggeeee 6666
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400. LLLLDDDD((((1111))))                                                                    LLLLDDDD((((1111))))
  401.  
  402.  
  403.  
  404.      ----nnnnooooiiiinnnnffffoooo
  405.           Disable the -info level of error messages as described above.
  406.  
  407.  
  408.      ----ddddeeeemmmmaaaannnngggglllleeee
  409.           Specifies that demangling of C++ names should take place when
  410.           printing other messages.
  411.  
  412.  
  413.      ----iiiiggggnnnnoooorrrreeee____uuuunnnnrrrreeeessssoooollllvvvveeeedddd
  414.           This option causes an executable or DSO to be produced and ld to
  415.           exit with zero status even if there are unresolved symbols;
  416.           resolution of these symbols will be completed by rrrrlllldddd .... If linking
  417.           -call_shared, a list of the unresolved symbols will be output (as it
  418.           always is for -call_shared).  If linking -shared, no such list will
  419.           be output.  If linking -non_shared, this option is ignored (and
  420.           -no_unresolved is used, as it always is for -non_shared).  This
  421.           option is the default for -shared linking, but not for -call_shared
  422.           or -non_shared.
  423.  
  424.  
  425.      ----nnnnoooo____uuuunnnnrrrreeeessssoooollllvvvveeeedddd
  426.           Unresolved symbols will be listed.  If linking -shared, a DSO will
  427.           still be produced (as it always is for -shared) and ld will exit
  428.           with zero status.  If linking -call_shared or -non_shared, ld will
  429.           exit with nonzero status and no executable will be produced.  This
  430.           option is the default for -call_shared and -non_shared link, but not
  431.           for -shared.
  432.  
  433.  
  434.      ----wwwwaaaarrrrnnnn____uuuunnnnuuuusssseeeedddd
  435.           This flag specifies that the linker should issue a warning if it
  436.           finds that some object has not been used in a link.  The semantics
  437.           of dynamic linking dictate that this cannot be determined absolutely
  438.           at static link time, but it is usually quite reliable. This is the
  439.           default.
  440.  
  441.  
  442.      ----ddddoooonnnntttt____wwwwaaaarrrrnnnn____uuuunnnnuuuusssseeeedddd
  443.           Turns off the warning specified by ----wwwwaaaarrrrnnnn____uuuunnnnuuuusssseeeedddd....
  444.  
  445.  
  446.      ----aaaalllllllloooowwww____mmmmiiiissssssssiiiinnnngggg
  447.           When using an ELF layout specification file with the
  448.  
  449.  
  450.  
  451. SSSSttttrrrriiiippppppppiiiinnnngggg OOOOppppttttiiiioooonnnnssss
  452.      ----ssss   Strip the symbolic information from the output object file.
  453.  
  454.  
  455.  
  456.  
  457.  
  458.  
  459.                                                                         PPPPaaaaggggeeee 7777
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466. LLLLDDDD((((1111))))                                                                    LLLLDDDD((((1111))))
  467.  
  468.  
  469.  
  470.      ----xxxx   Do not preserve local (non-global) symbols in the output symbol
  471.           table; enter external and static symbols only.  This option saves
  472.           some space in the output file.
  473.  
  474.  
  475.  
  476. OOOOuuuuttttppppuuuutttt OOOObbbbjjjjeeeecccctttt FFFFoooorrrrmmmmaaaatttt OOOOppppttttiiiioooonnnnssss
  477.      ----rrrr   Retain relocation entries in the output file.  Relocation entries
  478.           must be saved if the output file is to become an input file in a
  479.           subsequent lllldddd run.  This option also prevents final definitions from
  480.           being given to common symbols, and suppresses the `undefined symbol'
  481.           diagnostics.
  482.  
  483.  
  484.      ----eeeellllffff Produce ELF output object file.  This is the default and currently
  485.           the only file format supported.
  486.  
  487.  
  488.      ----nnnnoooonnnn____sssshhhhaaaarrrreeeedddd
  489.           Produce a static executable. The output object created will not use
  490.           any shared objects during execution. This declares that you are
  491.           doing non-PIC loading.
  492.  
  493.  
  494.      ----sssshhhhaaaarrrreeeedddd
  495.           Produce a dynamic shared object. This includes creating all of the
  496.           tables for run-time linking and resolving references to other
  497.           specified shared objects.  The object created may be used by the
  498.           linker to make dynamic executables.
  499.  
  500.  
  501.      ----ccccaaaallllllll____sssshhhhaaaarrrreeeedddd
  502.           Produce a dynamic executable. The object created may use shared
  503.           objects at run-time. This is the default.
  504.  
  505.  
  506.      ----oooo33332222 oooorrrr ----33332222
  507.           Specifies that the object to be linked (and the input objects) are
  508.           to be 32-bit ucode objects.
  509.  
  510.  
  511.      ----nnnn33332222 Specifies that the object to be linked (and the input objects) are
  512.           to be 32-bit n32 objects.
  513.  
  514.  
  515.      ----66664444  Specifies that the object to be linked (and the input objects) are
  516.           to be 64-bit objects.
  517.  
  518.  
  519.      ----mmmmiiiippppssss1111
  520.           Specifies that the linker should try to produce a binary that
  521.           conforms to the MIPS 1 ISA.  If _l_d finds object files that are MIPS
  522.  
  523.  
  524.  
  525.                                                                         PPPPaaaaggggeeee 8888
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532. LLLLDDDD((((1111))))                                                                    LLLLDDDD((((1111))))
  533.  
  534.  
  535.  
  536.           2, the resulting binary will silently be marked as being a ----mmmmiiiippppssss2222
  537.           binary.  ( NNNNOOOOTTTTEEEE:::: Because all ----oooo33332222 format object files shipped by SGI
  538.           are built ----mmmmiiiippppssss2222 , it may not be possible to produce a ----mmmmiiiippppssss1111
  539.           executable.)
  540.  
  541.  
  542.      ----mmmmiiiippppssss2222
  543.           Specifies that the linker should try to produce a binary that
  544.           conforms to the MIPS 2 ISA.
  545.  
  546.  
  547.      ----mmmmiiiippppssss3333
  548.           Specifies that the linker should try to produce a binary that
  549.           conforms to the MIPS 3 ISA.  If _l_d finds object files that are MIPS
  550.           4, the resulting binary will silently be marked as being a ----mmmmiiiippppssss4444
  551.           binary.
  552.  
  553.  
  554.      ----mmmmiiiippppssss4444
  555.           Specifies that the linker should try to produce a binary that
  556.           conforms to the MIPS 4 ISA.
  557.  
  558.  
  559. LLLLaaaayyyyoooouuuutttt OOOOppppttttiiiioooonnnnssss
  560.      ----LLLLDDDD____LLLLAAAAYYYYOOOOUUUUTTTT::::[[[[ttttyyyyppppeeee====aaaarrrrgggg]]]][[[[::::ttttyyyyppppeeee====aaaarrrrgggg]]]]........
  561.           Commands that affect object layout.
  562.  
  563.           sssseeeegggglllliiiiggggnnnn====_a_l_i_g_n_v_a_l
  564.                Defines the minimum segment alignment to be _a_l_i_g_n_v_a_l. This
  565.                value needs to be both 0x1000 or greater and a power of 2.
  566.  
  567.  
  568.      ----dddd        Force definition of common storage and define loader defined
  569.                symbols even if ----rrrr is present.
  570.  
  571.  
  572.      ----zzzz        Arrange that the process pages are loaded on demand from the
  573.                resulting executable file rather than preloaded, and that the
  574.                text pages are shared among all users.  This is the default.
  575.  
  576.  
  577.      ----mmmmuuuullllttttiiiiggggooootttt Create multiple Global Offset Tables. All entries in the GOT
  578.                need to be accessible from a 16 bit offset from a common GP
  579.                (Global Pointer). If the GOT grows too big you may get a "gp
  580.                out of range" error at link time. This option will allow the
  581.                linker to create multiple GOTs and GPs thus avoiding the error.
  582.                This is position dependent and should appear before any objects
  583.                on the command line. Having multiple GOTs will neither increase
  584.                code size nor affect performance. This option is only usable
  585.                with PIC code: it is not appropriate or useful with code
  586.                compiled or linked -non_shared.
  587.  
  588.  
  589.  
  590.  
  591.                                                                         PPPPaaaaggggeeee 9999
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598. LLLLDDDD((((1111))))                                                                    LLLLDDDD((((1111))))
  599.  
  600.  
  601.  
  602.      ----nnnn        Arrange that when the output file is executed, the entire text
  603.                and data portions of the executables are preloaded.  This
  604.                involves moving the data areas up to the first possible
  605.                _p_a_g_e_s_i_z_e byte boundary following the end of the text.  User
  606.                must specify -non_shared when -n is used.
  607.  
  608.  
  609.      ----NNNN        Place the data segment immediately after the text and do not
  610.                make the text portion read only or sharable. Only objects
  611.                compiled ----nnnnoooonnnn____sssshhhhaaaarrrreeeedddd can be linked with ----NNNN....
  612.  
  613.  
  614.      ----TTTT _n_u_m    Set the text segment origin.  The argument _n_u_m is a hexadecimal
  615.                number.
  616.  
  617.  
  618.      ----DDDD _n_u_m    Set the data segment origin.  The argument _n_u_m is a hexadecimal
  619.                number.  Please note that this switch is non-standard, and may
  620.                not be supported across product lines.
  621.  
  622.  
  623.      ----BBBB _n_u_m    Set the bss segment origin.  The argument _n_u_m is a hexadecimal
  624.                number.  Please note that this switch is non-standard, and may
  625.                not be supported across product lines.
  626.  
  627.  
  628.      ----GGGG _n_u_m    If the flag -_SYSTYPE_SVR4 has been specified, this flag is a
  629.                synonym for -shared, and takes no numerical argument.
  630.                Otherwise, The argument _n_u_m is taken to be a decimal number
  631.                that is the largest size in bytes of a ._c_o_m_m item that is to be
  632.                allocated in the small bss section for reference off the global
  633.                pointer.  The default is 8 bytes.  Please note that this switch
  634.                is non-standard, and may not be supported across product lines.
  635.  
  636.  
  637.      ----rrrrddddaaaattttaaaa____wwwwrrrriiiittttaaaabbbblllleeee
  638.                Puts .rodata into the "data" segment, which has the "WRITE"
  639.                permission.  This is the default.
  640.  
  641.  
  642.      ----rrrrddddaaaattttaaaa____sssshhhhaaaarrrreeeedddd
  643.                Puts .rodata into the "text" segment, where it will be shared
  644.                across processes, and will be read-only.
  645.  
  646.  
  647.      ----iiiivvvvppppaaaadddd    Improves cache behavior by causing the linker to perform
  648.                intervariable padding of some large variables.
  649.  
  650.  
  651.      ----nnnnooooiiiivvvvppppaaaadddd  Turns off ----iiiivvvvppppaaaadddd....
  652.  
  653.  
  654.  
  655.  
  656.  
  657.                                                                        PPPPaaaaggggeeee 11110000
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664. LLLLDDDD((((1111))))                                                                    LLLLDDDD((((1111))))
  665.  
  666.  
  667.  
  668.      ----XXXXllllooooccccaaaallll   _n_a_m_e,...
  669.                Assigns the named global bss (uninitialized data) symbols to a
  670.                special llllooooccccaaaallll ddddaaaattttaaaa section in the a.out. This is useful for
  671.                hand-parallelized FFFFoooorrrrttttrrrraaaannnn programs that require this symbol to
  672.                be private for each thread.
  673.  
  674.                A symbol assigned to the _s_m_a_l_l _b_s_s or _s_m_a_l_l _d_a_t_a section of an
  675.                object file cannot be moved to the special section. If the
  676.                symbol gets assigned to one of small bss/data section, then
  677.                either recompile with a smaller ----GGGG number or use the following
  678.                pragma in your source code:
  679.                 #pragma section_non_gp(_n_a_m_e) in C or
  680.                 c*$*section_non_gp(_n_a_m_e) in FFFFoooorrrrttttrrrraaaannnn.
  681.  
  682.  
  683.      ----eeeellllssssppppeeeecccc  eeeellllssssffffiiiilllleeee
  684.                This flag specifies a file to serve as an ELF layout
  685.                specification file.  This file and its syntax are described in
  686.                eeeellllssssppppeeeecccc((((5555))))....
  687.  
  688.  
  689.      ----eeeellllssssmmmmaaaapppp   This flag specifies that the linker should emit a layout map in
  690.                the form of an ELF layout specification.  The output from this
  691.                specification can be used with the ----eeeellllssssppppeeeecccc flag without
  692.                modification.
  693.  
  694.  
  695.      ----cccchhhheeeecccckkkk____rrrreeeeggggiiiissssttttrrrryyyy _l_o_c_a_t_i_o_n__f_i_l_e
  696.                Check the location of this shared object's segments and make
  697.                sure they stay out of the way of others in the location_file.
  698.                A single registry file, either with ----cccchhhheeeecccckkkk____rrrreeeeggggiiiissssttttrrrryyyy or
  699.                ----uuuuppppddddaaaatttteeee____rrrreeeeggggiiiissssttttrrrryyyy is allowed.  This option is used with ----sssshhhhaaaarrrreeeedddd....
  700.  
  701.  
  702.      ----uuuuppppddddaaaatttteeee____rrrreeeeggggiiiissssttttrrrryyyy _l_o_c_a_t_i_o_n__f_i_l_e
  703.                Register the location of this shared object's segments and make
  704.                sure they stay out of the way of others in the location_file.
  705.                Location_file is updated if it is writable.  A single registry
  706.                file, either with ----cccchhhheeeecccckkkk____rrrreeeeggggiiiissssttttrrrryyyy or ----uuuuppppddddaaaatttteeee____rrrreeeeggggiiiissssttttrrrryyyy is
  707.                allowed.  This option is used with ----sssshhhhaaaarrrreeeedddd.... The default
  708.                registry file is /usr/lib{,32,64}/so_locations.  See the ddddssssoooo((((5555))))
  709.                manpage for details on so_locations.
  710.  
  711.  
  712.  
  713.  
  714. DDDDyyyynnnnaaaammmmiiiicccc OOOOppppttttiiiioooonnnnssss
  715.      ----eeee _e_p_s_y_m
  716.           Set the default entry point address for the output file to be that
  717.           of the symbol _e_p_s_y_m.
  718.  
  719.  
  720.  
  721.  
  722.  
  723.                                                                        PPPPaaaaggggeeee 11111111
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730. LLLLDDDD((((1111))))                                                                    LLLLDDDD((((1111))))
  731.  
  732.  
  733.  
  734.      ----IIII  ppppaaaatttthhhh____nnnnaaaammmmeeee
  735.           The path_name is a path name for the system to invoke as a program
  736.           interpreter.  This option writes the path name into the .interp
  737.           section.
  738.  
  739.  
  740.      ----ddddeeeeffffaaaauuuulllltttt____ddddeeeellllaaaayyyy____llllooooaaaadddd
  741.           When creating a dynamic shared object using ----sssshhhhaaaarrrreeeedddd,,,, it marks that
  742.           shared object as default delay load.
  743.  
  744.  
  745.      ----ddddeeeellllaaaayyyy____llllooooaaaadddd
  746.           Indicates that the next specified object, if it is a dynamic shared
  747.           object, should be delay loaded.
  748.  
  749.  
  750.      ----ffffoooorrrrcccceeee____llllooooaaaadddd
  751.           Forces the normal loading of the next specified object, overriding
  752.           any default delay load attribute associated with that object.
  753.  
  754.           This flag is used when creating a dynamic object ( ----sssshhhhaaaarrrreeeedddd or
  755.           ----ccccaaaallllllll____sssshhhhaaaarrrreeeedddd)))).... It indicates that symbols from the next object,
  756.           archive, or dynamic shared object will be exported by the object
  757.           being created. This is the default behavior for linking in an object
  758.           but not for archives or dynamic shared objects.
  759.  
  760.  
  761.      ----hhhhiiiiddddeeeessss
  762.           This flag is used when creating a dynamic object ( ----sssshhhhaaaarrrreeeedddd or
  763.           ----ccccaaaallllllll____sssshhhhaaaarrrreeeedddd)))).... It indicates that symbols from the next object,
  764.           archive, or dynamic shared object will be hidden by the object being
  765.           created. This is the default behavior for linking in archives or
  766.           dynamic shared objects, but not for objects.
  767.  
  768.  
  769.      ----eeeexxxxppppoooorrrrtttteeeedddd____ssssyyyymmmmbbbboooollll _n_a_m_e,...
  770.           Used in conjunction with ----sssshhhhaaaarrrreeeedddd or ----ccccaaaallllllll____sssshhhhaaaarrrreeeedddd.... This marks the
  771.           symbol given by the list of names as exported.  If you specify any
  772.           exported symbols, then all unspecified symbols are automatically
  773.           hidden.
  774.  
  775.  
  776.      ----eeeexxxxppppoooorrrrttttssss____ffffiiiilllleeee _f_i_l_e_n_a_m_e
  777.           Used in conjunction with ----sssshhhhaaaarrrreeeedddd or ----ccccaaaallllllll____sssshhhhaaaarrrreeeedddd.... The file given by
  778.           filename contains a list of symbols that should be exported.  The
  779.           list is space separated (including newlines).  Any symbols not
  780.           specifically exported will be automatically hidden.
  781.  
  782.  
  783.      ----hhhhiiiiddddddddeeeennnn____ssssyyyymmmmbbbboooollll_n_a_m_e,...
  784.           Used in conjunction with ----sssshhhhaaaarrrreeeedddd or ----ccccaaaallllllll____sssshhhhaaaarrrreeeedddd.... This marks the
  785.           symbol given by the list of names as hidden.  This is ignored if any
  786.  
  787.  
  788.  
  789.                                                                        PPPPaaaaggggeeee 11112222
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796. LLLLDDDD((((1111))))                                                                    LLLLDDDD((((1111))))
  797.  
  798.  
  799.  
  800.           symbols are specifically marked as exported using the
  801.           ----eeeexxxxppppoooorrrrtttteeeedddd____ssssyyyymmmmbbbboooollll or ----eeeexxxxppppoooorrrrttttssss____ffffiiiilllleeee options.
  802.  
  803.  
  804.      ----hhhhiiiiddddddddeeeennnnssss____ffffiiiilllleeee _f_i_l_e_n_a_m_e
  805.           Used in conjunction with ----sssshhhhaaaarrrreeeedddd or ----ccccaaaallllllll____sssshhhhaaaarrrreeeedddd.... The file given by
  806.           filename contains a list of symbols that should be hidden.  The list
  807.           is space separated (including newlines).  This list is ignored if
  808.           any symbols are specifically marked as exported using
  809.           ----eeeexxxxppppoooorrrrtttteeeedddd____ssssyyyymmmmbbbboooollll or ----eeeexxxxppppoooorrrrttttssss____ffffiiiilllleeee options.
  810.  
  811.  
  812.      ----ttttrrrraaaannnnssssiiiittttiiiivvvveeee____lllliiiinnnnkkkk
  813.           Normally, every shared object and every executable has a dependency
  814.           list of shared objects which are needed for correct execution.  The
  815.           runtime linker rrrrlllldddd(_1) will load these objects, when any process is
  816.           run. If the depended-upon shared objects have more objects which
  817.           they in turn depend upon, rrrrlllldddd will add them at the end of the list,
  818.           and so on, performing a transitive closure.
  819.  
  820.           By default a similar operation is performed at static ((((lllldddd)))) link
  821.           time. Any shared object which is listed on the command line is put
  822.           on a.out's dependency list.  Then any new shared objects from the
  823.           dependency lists of the already-processed shared objects are also
  824.           processed and checked for conflicting definitions of symbols, but
  825.           are not added to the list of shared objects needed by the object
  826.           being built.  This is the default behavior.
  827.  
  828.  
  829.      ----nnnnoooo____ttttrrrraaaannnnssssiiiittttiiiivvvveeee____lllliiiinnnnkkkk
  830.           Some applications may find it desirable to hide some of their
  831.           dependent libraries.  This flag cancels the upward propagation of
  832.           libraries to facilitate such hiding.  Executables and shared objects
  833.           built in this way may experience slightly slower startup. If you are
  834.           linking using the cccccccc(_1) command, this flag should be passed both to
  835.           the driver and the linker, e.g. both ----nnnnoooo____ttttrrrraaaannnnssssiiiittttiiiivvvveeee____lllliiiinnnnkkkk and
  836.           ----WWWWllll,,,,----nnnnoooo____ttttrrrraaaannnnssssiiiittttiiiivvvveeee____lllliiiinnnnkkkk should be used.
  837.  
  838.  
  839.      ----sssseeeetttt____vvvveeeerrrrssssiiiioooonnnn _v_e_r_s_i_o_n__s_t_r_i_n_g
  840.           Sets the value of DT_MIPS_IVERSION field in the dynamic section of
  841.           the shared object to "version_string".  The version string is a
  842.           series of version strings separated by colons(:).
  843.  
  844.  
  845.      ----eeeexxxxaaaacccctttt____vvvveeeerrrrssssiiiioooonnnn
  846.           Set the LL_EXACT_MATCH flag in .liblist flags field. This indicates
  847.           to rrrrlllldddd that this shared object must match the timestamp and checksum
  848.           from the .liblist section in addition to the interface version.
  849.           This means that all DSOs run against must match, exactly, the
  850.           version, timestamp, and checksum against which the app was linked
  851.           (or _r_q_s-d).  This means that if the object is copied to another
  852.  
  853.  
  854.  
  855.                                                                        PPPPaaaaggggeeee 11113333
  856.  
  857.  
  858.  
  859.  
  860.  
  861.  
  862. LLLLDDDD((((1111))))                                                                    LLLLDDDD((((1111))))
  863.  
  864.  
  865.  
  866.           machine it will not run unless the object is first _r_q_s-d (because
  867.           the other machine will surely have a different checksum/timestamp
  868.           for things on the liblist of this object. Such as libc.so.1).  Even
  869.           more surprising: on a mips4 machine (such as R10000) cc t.c -n32
  870.           -mips3 -Wl,-exact_version ; ./a.out will not execute. _r_l_d will
  871.           report a fatal error because the mips3 libc.so.1 linked against is
  872.           not the same as the mips4 libc.so.1 against which the executable
  873.           will run on that machine.
  874.  
  875.  
  876.      ----iiiiggggnnnnoooorrrreeee____vvvveeeerrrrssssiiiioooonnnn
  877.           Sets the LL_IGNORE_VERSION flag in the liblist flags field. For
  878.           subsequent shared objects in the liblist.  rrrrlllldddd will not try to match
  879.           the interface version as specified at link time.
  880.  
  881.  
  882.      ----rrrreeeeqqqquuuuiiiirrrreeee____mmmmiiiinnnnoooorrrr
  883.           Set the LL_REQUIRE_MINOR flag in the .liblist flags field for shared
  884.           objects listed subsequently on the link line.  This indicates to rrrrlllldddd
  885.           that the shared object used at runtime must have the exact same
  886.           minor (and major) version number as that at static link time.
  887.           Otherwise, execution will abort.  See the ddddssssoooo((((5555)))) manpage for details
  888.           on major and minor version numbers.
  889.  
  890.  
  891.      ----iiiiggggnnnnoooorrrreeee____mmmmiiiinnnnoooorrrr
  892.           Clear the LL_REQUIRE_MINOR flag in the .liblist flags field for
  893.           shared objects listed subsequently on the link line.  This allows
  894.           rrrrlllldddd to use a shared object at runtime which has a different minor
  895.           version number.  This is the default behavior.  See the ddddssssoooo((((5555))))
  896.           manpage for details on major and minor version numbers.
  897.  
  898.  
  899.      ----nnnnoooo____lllliiiibbbbrrrraaaarrrryyyy____rrrreeeeppppllllaaaacccceeeemmmmeeeennnntttt
  900.           Turns on a flag in the dynamic section so that rld does not allow
  901.           execution time or runtime changing of the path (except for super
  902.           user) to find the shared objects. Typically, used for security
  903.           purposes on system utilities.
  904.  
  905.  
  906.      ----rrrrppppaaaatttthhhh  lllliiiibbbbrrrraaaarrrryyyy____ppppaaaatttthhhh
  907.           Sets the rpath (see the generic aaaabbbbiiii ) to the specified string.
  908.           Meaningful only for shared linkage.
  909.  
  910.  
  911.      ----ssssoooonnnnaaaammmmeeee _s_h_a_r_e_d__o_b_j_e_c_t__n_a_m_e
  912.           Sets DT_SONAME for a shared object. Use in conjunction with ----sssshhhhaaaarrrreeeedddd
  913.           option. The name may be a single component name (e.g. libc.a), a
  914.           full (starting with a slash), or relative pathname (containing a
  915.           slash).  Single component name use rpath, LD_LIBRARY_PATH and the
  916.           default paths to resolve their locations.
  917.  
  918.  
  919.  
  920.  
  921.                                                                        PPPPaaaaggggeeee 11114444
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928. LLLLDDDD((((1111))))                                                                    LLLLDDDD((((1111))))
  929.  
  930.  
  931.  
  932.      ----iiiinnnniiiitttt _i_f_u_n_c_s_y_m_b_o_l
  933.           Put a call to _i_f_u_n_c_s_y_m_b_o_l in the code rld will exercise before the
  934.           main program begins.  This contains initialization code to be called
  935.           before control is passed to _m_a_i_n.  In the case of a dlopen'd  or
  936.           sgidladd'd DSO, this initialization function is called after the DSO
  937.           is loaded but before it is referenced.  Only a single ----iiiinnnniiiitttt option
  938.           is effective in a given DSO or executable (if multiple are provided,
  939.           the last is used).  ----iiiinnnniiiitttt is only meaningful when creating a DSO or
  940.           creating a call-shared executable.  ----iiiinnnniiiitttt has no affect on non-
  941.           shared links.
  942.  
  943.  
  944.  
  945.      ----ffffiiiinnnniiii _f_f_u_n_c_s_y_m_b_o_l
  946.           Put a call to _f_f_u_n_c_s_y_m_b_o_l in the code rld will exercise after the
  947.           main program exits.  This contains termination code to be called
  948.           after the main program exits. In the case of a dlclose'd DSO which
  949.           is no longer referenced, this function is called before the DSO is
  950.           unmapped.  Only a single ----ffffiiiinnnniiii option is effective in a given DSO or
  951.           executable (if multiple are provided, the last is used).  ----ffffiiiinnnniiii is
  952.           only meaningful when creating a DSO or creating a call-shared
  953.           executable.  ----ffffiiiinnnniiii has no affect on non-shared links.
  954.  
  955.  
  956.  
  957. IIII////OOOO OOOOppppttttiiiioooonnnnssss
  958.      ----mmmmmmmmaaaapppp
  959.           This specifies that the linker will use mmmmmmmmaaaapppp((((2222)))) as its preferred
  960.           mode for reading object files. This usually results in better I/O
  961.           performances, except when using NFS mounted files with high network
  962.           latencies. This is the default.
  963.  
  964.  
  965.      ----rrrreeeeaaaadddd
  966.           This specifies that the linker is to use the _o_p_e_n(_2) , _l_s_e_e_k(_2) ,
  967.           and _r_e_a_d(_2) as its preferred mode for reading object files.  Setting
  968.           this option when many object files are remotely mounted with high
  969.           network latency often improves performance.
  970.  
  971.  
  972.  
  973.  
  974.  
  975.  
  976. HHHHaaaarrrrddddwwwwaaaarrrreeee PPPPaaaattttcccchhhh OOOOppppttttiiiioooonnnnssss
  977.      ----nnnnoooo____rrrr5555kkkk____jjjjuuuummmmpppp____aaaatttt____eeeeoooopppp
  978.           Works around an R5000 bug present in 1.1 silicon.  This option tries
  979.           to prevent certain classes of branch instructions from being the
  980.           second to last instruction on an even page of virtual memory.  This
  981.           option is on by default.  The hinv(1) command can be used to
  982.           determine what rev of R5000 is present in the system.
  983.  
  984.  
  985.  
  986.  
  987.                                                                        PPPPaaaaggggeeee 11115555
  988.  
  989.  
  990.  
  991.  
  992.  
  993.  
  994. LLLLDDDD((((1111))))                                                                    LLLLDDDD((((1111))))
  995.  
  996.  
  997.  
  998.      ----aaaalllllllloooowwww____rrrr5555kkkk____jjjjuuuummmmpppp____aaaatttt____eeeeoooopppp
  999.           Disables the work around for the R5000 bug.  When this flag is
  1000.           present, no adjustment is attempted.  The work around is enabled by
  1001.           default, the presence of this flag before any object files will turn
  1002.           it off.  Turning off this option will result in code that is not
  1003.           compatible across platforms and may also result in a performance
  1004.           penalty some R5000 systems.
  1005.  
  1006.  
  1007.      ----nnnnoooo____jjjjuuuummmmpppp____aaaatttt____eeeeoooopppp
  1008.           Works around an R4000 bug present in 2.1 and 2.2 silicon.  This
  1009.           option tries to prevent certain classes of branch instructions from
  1010.           being the last instruction on a page of virtual memory.  This option
  1011.           is on by default for links of MIPS3 or lower programs.  The hinv(1)
  1012.           command can be used to determine what rev of R4000 is present in the
  1013.           system.
  1014.  
  1015.  
  1016.      ----aaaalllllllloooowwww____jjjjuuuummmmpppp____aaaatttt____eeeeoooopppp
  1017.           Disables the work around for the R4000 bug.  When this flag is
  1018.           present, no adjustment is attempted.  The work around is enabled by
  1019.           default, the presence of this flag before any object files will turn
  1020.           it off.  Turning off this option will result in code that is not
  1021.           compatible across platforms and may also result in a performance
  1022.           penalty on some R4000 systems.
  1023.  
  1024.  
  1025.  
  1026. MMMMiiiisssscccceeeellllllllaaaannnneeeeoooouuuussss OOOOppppttttiiiioooonnnnssss
  1027.      ----oooo outfile
  1028.           Produce an output object file by the name _o_u_t_f_i_l_e. The name of the
  1029.           default object file is aaaa....oooouuuutttt.  In the event that _o_u_t_f_i_l_e has
  1030.           undefined references at the end of the link editor run, and the ----rrrr
  1031.           option was not used, and the ----aaaaoooouuuuttttkkkkeeeeeeeepppp option was used _o_u_t_f_i_l_e will
  1032.           be renamed aaaa....oooouuuutttt.  If there are undefined references and the
  1033.           ----aaaaoooouuuuttttkkkkeeeeeeeepppp option was not used there will be no output from _l_d.
  1034.  
  1035.  
  1036.      ----VVVVSSSS _n_u_m
  1037.           Use _n_u_m as the decimal version stamp to identify the a.out file that
  1038.           is produced.  The version stamp is stored in the optional and
  1039.           symbolic headers.
  1040.  
  1041.  
  1042.      ----____SSSSYYYYSSSSTTTTYYYYPPPPEEEE____SSSSVVVVRRRR4444
  1043.           This flag alters the meaning of the ----GGGG flag to conform to the Unix
  1044.           System V Release 4 usage.  See the description below.
  1045.  
  1046.  
  1047.  
  1048.  
  1049.  
  1050.  
  1051.  
  1052.  
  1053.                                                                        PPPPaaaaggggeeee 11116666
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060. LLLLDDDD((((1111))))                                                                    LLLLDDDD((((1111))))
  1061.  
  1062.  
  1063.  
  1064. SSSSyyyynnnnoooonnnnyyyymmmm OOOOppppttttiiiioooonnnnssss
  1065.      ----aaaajjjjeeeeoooopppp
  1066.           This is a synonym for ----aaaalllllllloooowwww____jjjjuuuummmmpppp____aaaatttt____eeeeoooopppp
  1067.  
  1068.  
  1069.      ----LLLL_d_i_r
  1070.           The same as ----LLLL  _d_i_r....
  1071.  
  1072.  
  1073.      ----LLLL   Change the algorithm of searching for lllliiiibbbb_x....{{{{ssssoooo,,,,_a} or lllliiiibbbb_x....bbbb to nnnneeeevvvveeeerrrr
  1074.           look in the default directories.  This is useful when the default
  1075.           directories for libraries should not be searched and only the
  1076.           directories specified by ----LLLL_d_i_r are to be searched.  This option may
  1077.           be dropped from some future release in favor of the ----nnnnoooossssttttddddlllliiiibbbb
  1078.           option.
  1079.  
  1080.  
  1081.      ----GGGG   If the flag -_SYSTYPE_SVR4 has been specified, this flag is a
  1082.           synonym for -shared, and takes no numerical argument.
  1083.  
  1084.  
  1085.      ----WWWWxxxx,,,,----GGGG  nnnnuuuummmm
  1086.           This is a synonym for the non-SVR4 meaning of ----GGGG
  1087.  
  1088.  
  1089.      ----hhhh   This is a synonym for ----ssssoooonnnnaaaammmmeeee
  1090.  
  1091.  
  1092.      ----ddddyyyy  This is a synonym for ----ccccaaaallllllll____sssshhhhaaaarrrreeeedddd
  1093.  
  1094.  
  1095.      ----ddddnnnn  This is a synonym for ----nnnnoooonnnn____sssshhhhaaaarrrreeeedddd
  1096.  
  1097.  
  1098.      ----aaaa   This is a synonym of ----nnnnoooonnnn____sssshhhhaaaarrrreeeedddd....
  1099.  
  1100.  
  1101.      ----hhhhiiiiddddeeeessss____ffffiiiilllleeee _f_i_l_e_n_a_m_e
  1102.           This is the obsolete version of the ----hhhhiiiiddddddddeeeennnnssss____ffffiiiilllleeee option and will
  1103.           disappear in future releases of the linker. Please change your
  1104.           makefiles to reflect this change.
  1105.  
  1106.  
  1107.      ----nnnnoooonnnneeee
  1108.           Same as ----nnnnoooottttaaaallllllll
  1109.  
  1110.  
  1111.  
  1112. FFFFIIIILLLLEEEESSSS
  1113.      /lib/lib*.so
  1114.      /lib/lib*.a
  1115.      /usr/lib/lib*.so
  1116.  
  1117.  
  1118.  
  1119.                                                                        PPPPaaaaggggeeee 11117777
  1120.  
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126. LLLLDDDD((((1111))))                                                                    LLLLDDDD((((1111))))
  1127.  
  1128.  
  1129.  
  1130.      /usr/lib/lib*.a
  1131.      /usr/lib/so_locations
  1132.      /usr/local/lib/lib*.a   libraries
  1133.  
  1134.      /lib32/lib*.so
  1135.      /lib32/lib*.a
  1136.      /usr/lib32/lib*.so
  1137.      /usr/lib32/lib*.a
  1138.      /usr/lib32/so_locations
  1139.      /usr/local/lib32/lib*.a   libraries
  1140.  
  1141.      /lib64/lib*.so
  1142.      /lib64/lib*.a
  1143.      /usr/lib64/lib*.so
  1144.      /usr/lib64/lib*.a
  1145.      /usr/lib64/so_locations
  1146.      /usr/local/lib64/lib*.a   libraries
  1147.  
  1148.      a.out   output file
  1149.  
  1150. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  1151.      cc(1), pc(1), f77(1), as(1), uld(1), ar(1), end(3), collide(1), rqs(1),
  1152.      dso(5)
  1153.  
  1154. NNNNOOOOTTTTEEEESSSS
  1155.      An object's segments must not overlap and all of the object's addresses
  1156.      must be less than 0x80000000.  The stack starts at 0x80000000 and grows
  1157.      down through lower addresses therefore space should be left for it.  The
  1158.      default text segment address is 0x10000000 with the data segment
  1159.      immediately following the text segment.  The default is that the bss
  1160.      segment follows the data segment.
  1161.  
  1162.      When creating an executable object runnable on Unix, a.out,
  1163.      /_u_s_r/_l_i_b/_c_r_t_1._o Should be the first object loaded and /_u_s_r/_l_i_b/_c_r_t_n._o
  1164.      should be last following any libraries.  The compiler drivers (_c_c(1),
  1165.      _f_7_7(1), and _p_c(1)) automatically load these object files in the proper
  1166.      order. Note that if lllldddd is invoked directly, those two objects will not be
  1167.      loaded automatically. It is the user's responsibility to specify them
  1168.      explicitly.
  1169.  
  1170.      A single registry file, either with ----cccchhhheeeecccckkkk____rrrreeeeggggiiiissssttttrrrryyyy or ----uuuuppppddddaaaatttteeee____rrrreeeeggggiiiissssttttrrrryyyy
  1171.      is allowed.  If multiple registry files are provided, all except the last
  1172.      one are silently ignored.
  1173.  
  1174.      Be careful when using ----ddddeeeellllaaaayyyy____llllooooaaaadddd or when linking against an object that
  1175.      was built ----ddddeeeeffffaaaauuuulllltttt____ddddeeeellllaaaayyyy____llllooooaaaadddd as the symbol preemption rules are
  1176.      different: symbols are resolved from the delay loaded object as if the
  1177.      object were last on the link line.
  1178.  
  1179.      Archives that are built with ----CCCC produce COFF style archive headers.  The
  1180.      linker will no longer recognize such archives.
  1181.  
  1182.  
  1183.  
  1184.  
  1185.                                                                        PPPPaaaaggggeeee 11118888
  1186.  
  1187.  
  1188.  
  1189.  
  1190.  
  1191.  
  1192. LLLLDDDD((((1111))))                                                                    LLLLDDDD((((1111))))
  1193.  
  1194.  
  1195.  
  1196.      The following group of options have been superseded by the ----eeeellllssssppppeeeecccc
  1197.      functionality:  ----XXXXnnnnoooobbbbsssssssscccchhhhaaaannnnggggeeee,,,, ----XXXXnnnnoooossssoooorrrrttttbbbbssssssss,,,, ----XXXXssssoooorrrrttttbbbbssssssss,,,, ----XXXXnnnnddddbbbblllloooocccckkkk,,,,
  1198.      ----XXXXbbbblllloooocccckkkk,,,, ----XXXXbbbblllloooocccckkkkrrrraaaannnnggggeeee,,,, ----XXXXnnnnddddllllooooccccaaaallllddddaaaattttaaaa,,,, ----XXXXaaaalllliiiiggggnnnnbbbbssssssss,,,, ----XXXXnnnnooooaaaalllliiiiggggnnnnbbbbssssssss,,,,
  1199.      ----XXXXccccaaaacccchhhheeeemmmmiiiissssaaaalllliiiiggggnnnn,,,, ----XXXXccccaaaacccchhhheeeessssiiiizzzzeeee,,,, ----XXXXccccaaaacccchhhheeeelllliiiinnnneeeessssiiiizzzzeeee,,,, ----XXXXddddeeeeffffmmmmoooovvvveeeemmmmaaaaxxxx,,,, ----XXXXsssseeeettttaaaalllliiiiggggnnnn,,,,
  1200.      ----XXXXddddeeeebbbbuuuugggg.... The flag ----XXXXllllooooccccaaaallllddddaaaattttaaaa has been replaced by the flag ----XXXXllllooooccccaaaallll....
  1201.  
  1202.  
  1203.  
  1204.  
  1205.  
  1206.  
  1207.  
  1208.  
  1209.  
  1210.  
  1211.  
  1212.  
  1213.  
  1214.  
  1215.  
  1216.  
  1217.  
  1218.  
  1219.  
  1220.  
  1221.  
  1222.  
  1223.  
  1224.  
  1225.  
  1226.  
  1227.  
  1228.  
  1229.  
  1230.  
  1231.  
  1232.  
  1233.  
  1234.  
  1235.  
  1236.  
  1237.  
  1238.  
  1239.  
  1240.  
  1241.  
  1242.  
  1243.  
  1244.  
  1245.  
  1246.  
  1247.  
  1248.  
  1249.  
  1250.  
  1251.                                                                        PPPPaaaaggggeeee 11119999
  1252.  
  1253.  
  1254.  
  1255.